package com.zhaotianhao.service.impl;

import com.zhaotianhao.pojo.FundsTarde;
import com.zhaotianhao.mapper.FundsTardeMapper;
import com.zhaotianhao.service.FundsTardeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhaotianhao.util.SnowflakeConfig;
import com.zhaotianhao.utils.SnowUtil;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * (FundsTarde)表服务实现类
 *
 * @author Z-7
 * @since 2022-03-04 15:59:37
 */
@DubboService
public class FundsTardeServiceImpl implements FundsTardeService {
    @Autowired
    private FundsTardeMapper fundsTardeMapper;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public FundsTarde queryById(String id) {
        return this.fundsTardeMapper.queryById(id);
    }

    /**
     * 分页查询
     *
     * @param fundsTarde 筛选条件
     * @param pageNum 起始页数
     * @param pageSize 分页偏移量
     * @return 查询结果
     */
    @Override
    public PageInfo<FundsTarde> queryByPage(FundsTarde fundsTarde,int pageNum,int pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        return new PageInfo<>(this.fundsTardeMapper.queryAll(fundsTarde));
    }

    /**
     * 新增数据
     *
     * @param fundsTarde 实例对象
     * @return 影响行数
     */
    @Override
    public int insert(FundsTarde fundsTarde) {
        String id = SnowflakeConfig.snowflakeIdStr();
        fundsTarde.setId(id);
        return this.fundsTardeMapper.insert(fundsTarde);
    }

    /**
     * 修改数据
     *
     * @param fundsTarde 实例对象
     * @return 影响行数
     */
    @Override
    public int update(FundsTarde fundsTarde) {
        String s = SnowflakeConfig.snowflakeIdStr();
        return this.fundsTardeMapper.update(fundsTarde,s);
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(String id) {
        return this.fundsTardeMapper.deleteById(id) > 0;
    }

    /**
     * 查询是否购买过次基金
     *
     * @param uid
     * @param fid
     * @return
     */
    @Override
    public FundsTarde queryByUidFid(Integer uid, Integer fid) {
        return this.fundsTardeMapper.queryByUidFid(uid,fid);
    }

    /**
     * 支付完成
     *
     * @param out_trade_no
     * @param i
     * @return
     */
    @Override
    public int updateTardeStatus(String out_trade_no, int i) {
        return this.fundsTardeMapper.updateTardeStatus(out_trade_no,i);
    }

    /**
     * 查询5分钟前为支付的订单
     *
     * @param i
     * @return
     */
    @Override
    public List<FundsTarde> queryUnPay(int i) {
        return this.fundsTardeMapper.queryUnPay(i);
    }
}
